| client^2 | can also be a server at the same time |  |
| cannot connect with a server unless the server is listening |  |
| has definition A program or process that connects to another program or process, using a communication channel, in order to request a service |  |
does concurrently - Waiting for interactions with the end-user, and responding when interactions occur
- Waiting for messages coming from the server, and responding when messages arrive
|  |
| handles the disconnection of the server, because the server crashed or the network failed or because either the client or server requested disconnection |  |
| initializes itself so it is able to communicate with the server |  |
| initiates a connection to a server |  |
| is a subtopic of 3.4 - The Client-Server Architecture |  |
| is a kind of process^2 |  |
| is a kind of program |  |
| may access many servers to perform different functions |  |
| may be located on the same computer as its server or on a different computer |  |
| may try again to connect to the server if the server does not initially respond |  |
| must know the network address of the server |  |
| reacts to messages coming from the server |  |
| see also client^2 |  |
| sends messages to the server to request services |  |
| terminates cleanly including includes disconnecting from a server if it is still connected |  |
| program | is written by programmer |  |
| should follow consistent guidelines that make the program easy to read |  |